package API.JDK8时间.Date类;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class InstantDemo {
    public static void main(String[] args) {
//        Instant 时间戳
//        static Instant now()  获取当前时间Instant对象(标准时间)
//        static Instant ofEpochMilli()  根据（秒/毫秒/纳秒）获取当前时间Instant对象
//       ZoneDateTime atZone(ZoneId zone) 指定市区
//        boolean isXxxx(Instant otherInstant)判断系列方法
//        Instant minusXxx(long millsTOSubtract)减少事件系列的方法
//        Instant plusXxx(long millsTOSubtract)增加 事件系列的方法



//       获取当前时间Instant对象(标准时间:即伦敦时间)
        Instant now = Instant.now();
        System.out.println(now);

//        根据（秒/毫秒/纳秒）获取当前时间Instant对象
        Instant instant = Instant.ofEpochMilli(1L);//毫秒对象
        System.out.println(instant);//1970-01-01 00-00-01z

        Instant instant1 = Instant.ofEpochSecond(1l);//秒钟对象
        System.out.println(instant1);//1970-01-01 00-00-01z

        Instant instant2 = Instant.ofEpochSecond(1l,1000000000l);
                                              //(     秒               毫秒）  两者相加
        System.out.println(instant2);//1970-01-01 00-00-02z

//        指定市区
        ZonedDateTime time = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));
        System.out.println(time);

//        判断系列方法  isXxx()
        Instant instant3 = Instant.ofEpochMilli(0l);
        Instant instant4 = Instant.ofEpochMilli(1000l);

        boolean result1 = instant3.isBefore(instant4);
        boolean result2 = instant3.isAfter(instant4);
        System.out.println(result1);
        System.out.println(result2);


//        减少事件系列的方法;  增加 事件系列的方法

        Instant instant5 = Instant.ofEpochMilli(1000l);
        Instant instant6 = instant5.minusMillis(100l);
        Instant instant7 = instant5.minusSeconds(100l);
        Instant instant8 = instant5.minusNanos(100l);
//        plus同上
    }
}
